草庐IT

Python pty.spawn stdin 未回显但重定向到 master 的 stdout

全部标签

windows - 为什么某些 cmd 启动的进程在重定向输出时会阻止/缓冲输出?

为什么某些进程在我的Windows机器上的命令行中启动,如果重定向,则阻止/缓冲它们的整个输出,而其他进程则没有?示例:tracert不会在写入时阻止/缓冲输出。如果执行:tracertponyoverflow.com>output.txt...output.txt文件随时间增长。这完全是我期望事情表现的方式。但是,我正在尝试使用潜在供应商的软件产品(iSpringSDK,如果您必须知道的话),它似乎会缓冲完整的输出,直到该过程完成。让我感到困惑的是,当这个软件在命令行运行时,输出会像预期的那样零碎地、逐行地出现。为什么调用它时使用和不使用输出重定向在行为上存在差异?跟进杂项问题:这在

python - 重定向现有的 Windows 资源管理器实例

我有一个程序现在可以打开很多文件夹,我希望我可以使用已经打开的资源管理器实例来打开新的文件夹。我有这段代码:importsubprocesssubprocess.Popen(r'explorer/select,"C:\path\of\folder\file"')我已经看到有关在C#中执行此操作的线程。有谁知道可以用Python完成的方法吗?谢谢,本 最佳答案 我不相信你能做到这一点。如果有任何希望,您可能需要查看Pythonfor.Net,您可以尝试一下IronPython。但是上面使用subprocess的代码只是给你相同的结果,

windows - 使用 AutoIT 将消息回显到命令提示符?

如何使用AutoIT将变量的内容回显到命令提示符?我只想在命令提示符中显示一条消息。Run("C:\WINDOWS\system32\cmd.exe")WinWaitActive("C:\WINDOWS\system32\cmd.exe")$message='Type:"editfile_name.ext"tocreateoreditafile'send("$message{ENTER}") 最佳答案 您需要将变量放在引号之前,然后它会被计算:send($message&"{ENTER}")

c++ - 如何在 Windows 中重定向 std::cout 和 printf

我已经根据这篇文章创建了程序CreatingaChildProcesswithRedirectedInputandOutput,但它对std::cout和printf不起作用,所以从这样的程序中我得到了一个“你好,妈妈”字符串,而cout和printf部分没有任何结果:int_tmain(intargc,_TCHAR*argv[]){HANDLEhStdOut=GetStdHandle(STD_OUTPUT_HANDLE);constchar*buffer="Hello,momma";std::cout问:我如何拦截cout和printf?我无权访问子程序的源代码,我只需要拦截它的输出

Windows cmd 将子命令输出重定向到文件

我正在尝试使用cuda-memcheck调试应用程序。我想要做的是将我的应用程序的输出重定向到一个文件,但另一方面,将cuda-memcheck的stdout和stderr重定向到另一个文件。但我无法让它工作。这:cuda-memcheck"app.exe>stdout1.txt">memcheck.log2>&1什么都不做。但是,如果我删除引号内的重定向(忽略我的应用程序输出),它就会执行。所以问题是,如何重定向子命令的标准输出? 最佳答案 根据您对cuda-memcheck行为的评论,您可以使用以下命令。cuda-memchec

windows - 如何使用 WinSxS list 重定向到旧版本的 DLL?

假设我有一个使用MSHTML的应用程序。安装IE9beta会更新MSHTML,这会破坏我的应用程序。我发现IE8dll的副本仍然存在于WinSxS文件夹中,所以也许我可以以某种方式使用它们而无需重新编译我的程序?WinSxS可以做到吗?我已经搜索了很长时间,但无法弄清楚如何重定向加载程序以使用IE8MSHTML(在WinSXS中)而不是IE9(在%SYSTEMROOT%\system32中)。任何想法/示例将不胜感激。 最佳答案 从那以后,我采用了不同的方法来解决这个问题。我将分享我最终所做的事情——我劫持了LoadLibrary并

windows - 为 Windows 实现 SMB 重定向器的最简单方法?

我想实现一个小工具,让我可以在Windows上做我已经可以在任何其他操作系统上轻松做的事情-通过IP地址和端口指定一个远程SMB服务器。Windows本身不会通过445或139(它的选择)以外的任何端口执行SMB,我厌倦了玩whack-a-mole对于Microsoft不断添加到Windows中的各种坏事的解决方法,以fsck通过SSH端口转发隧道SMB。我的想法是一个小的命令行应用程序,可以让我做类似的事情netsubst服务器名-iIP-p端口这会与驱动程序协同工作吗?动态链接库?它作为SMB重定向器连接到Windows,但扫描由netsubst设置的服务器名称表,而不是在网络上查

windows - 回显到文件时 Ant 不会创建 NL

我最初有这个:在我的文件中得到这个:Thisisline#1Thisisline#2Thisisline#3所以,我试过:Thisisline#1Thisisline#2Thisisline#3得到:Thisisline#1Thisisline#2Thisisline#3我这样做了:Thisisline#1${line.separator}Thisisline#2${line.separator}Thisisline#3${line.separator}得到:Thisisline#1Thisisline#2Thisisline#3我这样做了:Thisisline#1

windows - 有没有办法检查批处理文件中的重定向?

如果我们有一个像这样被重定向到日志的批处理文件:C:\Testing\Example.bat>C:\Testing\Example.log批处理文件中是否有任何方法可以确定日志文件是否发生了标准输出重定向?基本上,我拥有的批处理文件需要向其传递三个参数。当省略参数时,批处理文件会像常规Windows命令一样打印一个用法示例,并抛出一个“暂停”,以便可以读取指令。但是,如果不带参数调用批处理并且它被记录下来,那么批处理文件将永远等待一个键来打破暂停,但不会在屏幕上显示任何内容。通常这根本不是问题,但是我正在努力让这个白痴变得安全,因为我不会成为在其他脚本/计划任务中实现批处理文件的人。在

windows - 对于COM服务器和注册表项重定向,是否需要做文件路径重定向转换?

如果标题不太准确,请原谅。我在做一些与COM服务器和注册表重定向相关的事情时遇到了一些问题,我不太确定我的理解是否正确。希望任何人都可以分享一些关于它的信息。提前致谢。基本上,在任何人可以使用它的服务之前,一个COM服务器已经在注册表中注册了。在64位Windows操作系统上,注册表中可能有2个可能的View,一个用于默认View,另一个用于WOW64View。例如,第一个注册表项是:COMPUTER\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID{GUID}\LocalServer32,另一个是:COMPUTER\HKEY_LOCAL_MACHIN